package org.dromara.oce.service.remote;


import org.dromara.common.core.enums.DimensionsEnum;
import org.dromara.oce.domain.dto.*;

import java.util.List;

/**
 * @desc: 抖音巨量引擎相关接口
 * @author: hhl
 * @date：2024/8/16 17:15
 */
public interface OceanEngineRemoteService {
    /**
     * 获取接口调用的凭证 client_token。用于巨量授权 (目前调用老系统统一获取)
     *
     * @return token
     */
    public String getClientToken();

    public String getClientToken(String appCode);

    /**
     * 刷新token
     *
     * @param refreshToken
     * @return
     */
    public String refreshClientToken(String appCode, String refreshToken);

    /**
     * 获取三方接口调用的凭证 client_token。用于巨量小程序拉取iaa数据的授权 (目前调用老系统统一获取)
     *
     * @return token
     */
    public String getAppClientToken();

    /**
     * 获取广告主信息
     *
     * @param advertiserId 广告主id
     * @return
     */
    public GetAdvertiserInfo getAdvertiserInfo(Long advertiserId);

    /**
     * 素材数据
     */
    public List<GetVideoReportDTO> getVideoReport(String advertiserId, String startDate, String endDate);

    /**
     * 查询广告主下面的巨量广告列表
     *
     * @param advertiserId 广告主
     * @param createDate   创建时间
     */
    public GetPromotionNumDTO getPromotionNum(String advertiserId, String createDate);

    /**
     * 根据 appCode 查询广告收益
     */
    public List<DyEcpmCostDTO> queryAdvertAmount(long startTime, long endTime, String appCode);

    /**
     * 广告主账户消耗数据  --  时段
     */
    public List<GetAdvertiserReportDTO> getAdvertiserReportHours(String advertiserId, String appCode, String startDate);

    /**
     * 自定义报表
     *
     * @param advertiserId
     * @param appCode
     * @param startDate
     * @param endDate
     * @return
     */
    List<GetCustomReportDTO> getCustomReport(String advertiserId, String appCode, String startDate, String endDate, DimensionsEnum dimensionsEnum);

    /**
     * API回传
     *
     * @param req
     * @return
     */
    boolean reportBack(OceanEngineReport req);



}
